package collection

import "soluty.cc/go/godash/types"

// 通过 predicate（断言函数） 检查 collection（集合）中的 所有 元素是否都返回真值。
// 一旦 predicate（断言函数） 返回假值，迭代就马上停止。
// predicate（断言函数）调用三个参数： (value, index|key, collection)。
func Every(array []T, predicate types.Predicate) bool {
	if len(array) == 0 {
		return true
	}
	for index, value := range array {
		if !predicate(value, index, array) {
			return false
		}
	}
	return true
}
